1. Technical Field
The present invention relates generally to a technique for synthesizing logic circuits. More specifically the present invention relates to a logic synthesis technique in which propagation delays across circuits are equalized.
2. Description of Related Art
Digital logic circuitry is becoming increasingly prevalent in all kinds of devices. Many systems that were once operated through mechanical or analog electronic means are now controlled through digital electronics. Audio technology, including both home stereo equipment and the telephone system, is increasingly dominated by digital technology. Vehicles such as airplanes and automobiles, which were once controlled largely through mechanical means, are now primarily controlled by digital computers. Digital signal processing and digital wireless communications are just now beginning to replace long-dominant analog communications technology.
Designers of digital logic circuitry today generally use synthesis tools, computer programs for deriving a low-level implementation of a logic circuit from a high-level representation of logic functions. For instance, a designer may wish to connect two D-type flip-flops in series. The designer will specify to the synthesis tool that two D-type flip-flops connected in series are desired. The synthesis tool will then select circuit schematics for the two flip-flops from a standard library and combine the schematics to derive a low-level (logic-gate level) implementation for the circuit. In many synthesis tools, a designer has the option of choosing different design goals, such as power minimization, speed optimization, and so forth, so that the schematics picked from the standard library address these goals.
These schematics can then be translated into a physical form. Methods for translating a schematic into a physical form include deriving an integrated circuit layout directly from the schematic using some sort of integrated circuit compiler, and implementing the circuit in some kind of programmable logic device (PLD).
Programmable logic devices, including programmable logic arrays (PLAs), are integrated circuits containing connected blocks of circuitry for performing basic logic functions. A circuit design is xe2x80x9cprogrammedxe2x80x9d or xe2x80x9cburnedxe2x80x9d into a PLD by eliminating those connections between circuitry blocks that are not needed (by, for instance, blowing an internal fuse in the PLD, in the case of a xe2x80x9cfuse-programmablexe2x80x9d PLD) or defining certain wiring levels within the PLD (in the case of a xe2x80x9cmask-programmablexe2x80x9d PLD).
Conventional logic circuit synthesis techniques, however, suffer from a number of drawbacks. In complex circuits containing many signal paths, propagation delays (delays of signals through a circuit from input to output) can easily become unequal, which causes synchronization problems, particularly at high speeds.
Programmable logic arrays (PLAS), which are a type of PLD, solve the problem of synchronizing outputs, but only for simple circuits. PLAs are generally made up of arrays of AND and OR logic gates, and can be used to synthesize 2-level logic functions using a level of ANDs and a level of ORs. For simple circuits that can be implemented using a two-level AND-OR schematic, PLAs are an adequate solution, but for more complex circuits they are not.
What is needed, then, is a synthesis technique for producing circuits with synchronized outputs that is applicable for more complicated circuits, and a tool for implementing the technique.
The present invention is directed toward a method of synthesizing logic circuits having synchronized outputs, which method can be used in a synthesis tool for computer-aided engineering of logic circuits. The technique involves the a priori selection of a fixed number of logic xe2x80x9clevels,xe2x80x9d in which each level has a fixed propagation delay associated with it. Each level can include several logic functions, with each logic function in the level having the same propagation delay.
The logic circuit(s) to be implemented are then synthesized by connecting logic functions from one level to the next, so that every signal path must pass through each level once and only once. Logic circuits that are too complex to be synthesized using the number of levels chosen can be synthesized by partitioning the circuit into pieces that can each be synthesized using the levels available.
The physical result of such synthesis can be implemented using discrete logic components, or as a custom-fabricated integrated circuit using a standard integrated circuit compiler or layout tool, or in one or more programmable logic devices containing circuitry for each level.